package main

import "fmt"

//switch函数，减少大量的else if

func main()  {
	// 最基础的使用
	for i := 1;i<6;i++{
		switch i {
		case 1:
			fmt.Println(i)
		case 2:
			fmt.Println(i)
		case 3:
			fmt.Println(i)
		default:
			fmt.Println("无效的值")
		}
		//fmt.Println(i)
	}
	//进阶， 变量作用域，内部定义
	switch i := 3; i {
	case 1:
		fmt.Println(i)
	case 2:
		fmt.Println(i)
	default:
		fmt.Println("无效的值")
	}
	//switch内部定义外部不可调用
	//fmt.Println(i)
	// 进阶2 ,在一个范围内判断
	switch i := 4; i {
	case 1, 3, 5, 7, 9:
		fmt.Println("i为基数!", i)
	case 2, 4, 6, 8, 10:
		fmt.Println("i为偶数!", i)
	default:
		fmt.Println("无效的值")
	}

	// 进阶3， 为了适配
	//c代码fallthrough, 进入到下一步case中
	switch i := "萝卜"; i {
	case "萝卜":
		fmt.Println("我喜欢吃:", i)
		fallthrough
	case "西瓜":
		fmt.Println("除了西瓜,我也一样喜欢吃:", i)
	default:
		fmt.Println("不爱吃！")
	}
}

//我喜欢吃: 萝卜
//除了西瓜,我也一样喜欢吃: 萝卜